#pragma once

#include "instructions/base/instructions.h"
#include <memory>

namespace jvm {
namespace instructions {

class Frame;
class MethodRef;

class InvokeVirtual : public Index16Instruction {
public:
    void execute(std::shared_ptr<rtda::Frame> p_frame) override;

private:
    void println(std::shared_ptr<rtda::OperandStack> stack, const std::string& descriptor);
};

} // namespace instructions
} // namespace jvm